home *** CD-ROM | disk | FTP | other *** search
/ Mac Cube 4: Multimedia Applications / MacCube Volume 4: Multimedia Applications.iso / Graphics / POV Ray / POVSOURCE / POV-Ray 2.2 Notes < prev    next >
Text File  |  1994-02-09  |  28KB  |  348 lines

  1. +==========================================================================
  2. | Macintosh POV-Ray
  3. | The Very Best FreeWare Macintosh Raytracer
  4. | Version 2.2, Feb. 10, 1994
  5. +--------------------------------------------------------------------------
  6. |
  7. |   Notes
  8. |
  9. +--------------------------------------------------------------------------
  10. | Welcome to POV-Ray!  This application is a raytracer, a program that takes
  11. | a textual description of a 3-dimensional scene of objects, and creates a
  12. | full-color PICT image of the scene, with photo-realistic textures, shadows,
  13. | and reflections.  This program is FreeWare.  For more information on the
  14. | usage and distribution policies of POV-Ray, please see POVLEGAL.DOC.
  15. +==========================================================================
  16.  
  17.  
  18. Introduction
  19. ------------
  20. This document describes the specific functions of the Macintosh version of POV-Ray.  It is  assumed that you have read (or will read) the POVRAY.DOC file that describes the general operation of POV-Ray.  There is also a “POV-Ray 2.x ReadMe” file, which explains the requirements, functionality, and has a brief installation and quick-start section.
  21.  
  22. Here's a list of topics in this document:
  23.  
  24. The POV-Ray Preferences dialog, up close
  25. The Rendering Options dialog, up close
  26. The Animation Settings dialog, up close
  27. Advanced Tips
  28.    To speed up rendering as much as possible…
  29.    To edit large scene files…
  30.    To batch-render a series of individual scene files…
  31.    To generate a QuickTime movie from POV-Ray…
  32. Bugs, Quirks, and Future Directions
  33.    The Bad News...
  34.    The Good News, Coming sometime after version 2.0...
  35. The Source Code
  36.    Think C Compiler Notes
  37.    MPW C Compiler Notes
  38.  
  39.  
  40. The POV-Ray Preferences dialog, up close
  41. -------------------------------------
  42. This dialog sets up general preferences for the POV-Ray application that will be remembered between renders, and between separate runs of POV-Ray itself.  Here is a description of what each item does:
  43.  
  44. (1) Application Friendliness - The higher the number, the more time POV-Ray takes from other applications, and the faster it runs (and the slower and more jumpy the other applications become.)
  45.  
  46. (2a) Use Application's Default Rendering Options - To use the Application Default Rendering Options for rendering files (ignoring each file's unique  Rendering Options), click here.  This is normally used for multiple rendering sessions.
  47. (2b) Use each file's Rendering Options - To use each file's unique  Rendering Options, click here.  This is normally used for single rendering sessions.
  48.  
  49. (3a) Notify When Complete - Select one of these items to tell POV-Ray what to do when it finishes rendering the scene or scenes.  It can finish quietly or it can notify you.  4b below lets you set HOW it notifies you.
  50. (3b) Notification Style - Select one of these items to tell POV-Ray how to notify you when it finishes rendering the scene or scenes.  It can either beep, display a dialog, or do both.
  51.  
  52. (4) Set Include Folder - Click this button to choose which folder POV-Ray should look in for files specified in the "#include" statements.  It will also look in the same folder as the original scene being rendered.  Just below this button is the path to the current folder it will look in.
  53.  
  54.  
  55. The Rendering Options dialog, up close
  56. ----------------------------------
  57. This dialog sets up specific rendering options for the current scene file.  These options are stored with the scene file itself (in the respurce fork) and are remembered on subsequent renders of the scene file.  Here is a description of what each item does:
  58.  
  59. (1a) Preset Image Sizes - Selecting an image size here will automatically fill in the width/height/from/to fields below with a preset size.  Many screen sizes are listed here.
  60. (1b) Width - Enter the total width of the image you want to render (in pixels.)  This number can be from 1 to 4096.
  61. (1c) Height - Enter the total height of the image you want to render (in pixels.)  This number can be from 1 to 4096.
  62. (1d) From row - Enter the top scanline, or starting row, of the image you want to render (in pixels.)  Only enter a number here if you want to render a partial image.
  63. (1e) To row - Enter the bottom scanline, or ending row, of the image you want to render (in pixels.)  Only enter a number here if you want to render a partial image.
  64.  
  65. (2) Progress - Sets how much information is displayed in the status window as the render progresses.  "No Info" is quiet, "Minimal Info" shows some memory usage information, "Progress Info" informs you of each scanline, "Debug Info" shows internal debug information.  See POVRAY.DOC for more information on the "+V" option.
  66.  
  67. (3) Image Quality - Enter a number (from zero to nine) to select the quality of the rendered image.  1 just shows grey shapes, 5 shows colors, 9 shows full shadows lights and refraction.  The lower the number, the lower the quality and the faster the render.See POVRAY.DOC for more information on the "+Q" option.
  68.  
  69. (4) Auto-bounding - Turn this popup on to let POV-Ray optimize your scene by automatically "bounding" the objects in your scene.  The number you set is the minimum number of main objects it finds before it decides to kick in auto-bounding.  See POVRAY.DOC for more information on the "+MB" option.
  70.  
  71. (5a) Animate - Turn this on if you want to create a sequence of multiple images from this scene file.  See POVRAY.DOC for more information on the "+K" option.
  72. (5b) Animate Settings - Click this to set up the number of frames, clock value range, etc. for animation.
  73.  
  74. (6) Language - Set this to which version of POV-Ray syntax this file is written in (version 1.0 or 2.0.)  See POVRAY.DOC for more information on the "+MV" option.
  75.  
  76. (7a) Compress Image - Turn this on to automatically use QuickTime image compression on the output PICT file when it is saved.
  77. (7b) Compression Settings - Click this to set up what kind of image compression to use on the PICT file.
  78.  
  79. (8) Max Symbols - Set this to the largest number of #declared items in your scene file.  See POVRAY.DOC for more information on the "+MS" option.
  80.  
  81. (9a) Do Anti-aliasing - Click here to toggle “anti-aliasing” of the image.  Although the rendering can take much longer when this is on, the final image is much nicer looking, with fewer jagged edges.  See POVRAY.DOC for more information on the "+A" option.
  82. (9b) Threshold - Enter a number here (from 0.0 to 1.0) that determines the threshold depth of anti-aliasing.  The closer to 0.0, the more anti-aliasing is done, the better the image looks, and the longer it takes to render.
  83. (9c) Depth - Enter a number from 1 to 9 here to set the recursive depth of anti-aliasing.  The number of rays is the square of this number, so a 3 would create 3*3 or 9 rays, etc.
  84. (9d) Jitter - Enter a number from 0.0 (no jitter) through 1.0 (lots of jitter.)  The higher this number, the "wider" the anti-aliasing area, and the smoother it looks.
  85.  
  86. (10a) Create Targa Output File - To toggle the creation of a Targa-format output file during the render process, click here.  This can allow you to stop POV-Ray partway through, and run it later to finish from where it left off.
  87. (10b) Continue Rendering with Targa - To tell POV-Ray to load the Targa file from the previous run and to continue where it left off last, click here.
  88.  
  89. (11) Save as defaults for new files - To save the current Rendering Option Settings as the Application's Default Settings, click here.  All new documents will then acquire these default Rendering Options.
  90.  
  91.  
  92.  
  93. The Animation Settings dialog, up close
  94. ----------------------------------
  95. This dialog sets up how many frames of animation to generate, and how the clock variable should change across the frames.  Note the outer bounds (Initial and Final) are used for calculating the overall number of frames and values for the scene.  The inner bounds (Start at and End at) are used to determine which frames to actually generate for this session.  Here is a description of what each item does:
  96.  
  97. *** Frame Number.  This is just a reference number which counts the number of frames (or images) to generate.  It starts at one, and increments for each frame.
  98.  
  99. (1a) Initial - This is a constant low bound for the frame counter.  It is always one.
  100.  
  101. (1b) Start At - This is the first frame number to start generating images for.  It can be any integer number from "Initial" to "End at".
  102.  
  103. (1c) End At - This is the last frame number to generate images for.  It can be any integer number from "End at" to "Final".
  104.  
  105. (1d) Final - This is the high bound for the frame counter.  It is the total number of frames that should be generated for the scene.  This is used to calculate the span of clock values.
  106.  
  107. *** Clock Value.  This is a variable passed into POV-Ray, which can be used as a dynamically changing animation variable (clock) in a scene file.
  108.  
  109. (1a) Initial - This is the clock value at frame #1.  It must be different than the "Final" clock value, but otherwise may be any floating point value.
  110.  
  111. (1b) Start At - This is the displayed clock value at the "Start At" frame value.
  112.  
  113. (1c) End At - This is the displayed clock value at the "End At" frame value.
  114.  
  115. (1d) Final - This is the clock value at the "Final" frame #.  It must be different than the "Initial" clock value, but otherwise may be any floating point value.
  116.  
  117.  
  118. Advanced Tips
  119. -------------
  120. ***
  121. *** To speed up rendering as much as possible on the Mac…
  122. ***
  123. If you are in the beginning stages of scene creation, you often find yourself editing, rendering, editing, rendering, etc.  To speed this up, try shrinking the image size to 32x32, and using the quick_color statements and setting the Image Quality down to about 3.  Also hiding the image window during rendering speeds up POV-Ray a bit.  If you are generating a final scene, try temporarily booting your Mac with no (or few) extensions on.  Some of these, especially screen savers and network connections, can really slow things down.  POV-Ray grabs more time if it is in the foreground, so don't switch it out behind others.  Also, choose the POV-Ray Preferences item from the Edit menu, and set the Application Friendliness throttle way up, towards 11.  Doing all of this can dramatically speed up the scene generation.  
  124.  
  125. ***
  126. *** To edit large scene files…
  127. ***
  128. Because of the current file size limitation in the POV-Ray built-in editor, you must make sure that the main “.POV” file is no larger than 32K bytes.  To edit and  render larger files, you must use another text editor to break the file into a small .POV file, which uses the #include statement to use the larger file(s).  You can then edit and render the .POV file with POV-Ray.  The larger include files must still be edited with another text editor.  Note that if you use a word processor to do this (e.g. MacWrite, Word, WriteNow, etc.), you must save the file in “Text-Only” format.
  129.  
  130. ***
  131. *** To batch-render a series of individual scene files…
  132. ***
  133. If you are rendering a few files of different output sizes/parameters, open each file in POV-Ray and set up its “Rendering Options” the way you want, and close each file when done.  There should be no POV-Ray Source file window open now.  Don't quit POV-Ray, but instead just switch to the System 7 Finder.  Select all the files which you just opened and set options for.  Now drag them over onto the POV-Ray application icon (or convenient application alias) and drop them on it.  POV-Ray will (by default) render each file with its own option settings, and save each image before starting the next.
  134.  
  135. If during this batch rendering process, you want to add more files to the list, just drag the new files onto POV-Ray just like before.  These new files will be added to the end of the list of files to batch-render.
  136.  
  137. To stop the batch rendering in progress, just choose "Stop Rendering" from the Render menu, or press command-period.  The current scene will be interrupted, and all remaining scenes will not render.  To resume, you will have to drop the remaining scene files onto POV-Ray again.
  138.  
  139. If you want a series of images to all be rendered, but with identical settings, then do this:  Open any one of the files to be rendered, and set up its Rendering Options the way you want all the files to be done.  Now choose “Application Preferences” from the File menu.  Turn on the “Use Application Default Options” radio button, and turn on the “Save current file's rendering options as the default” checkbox, and click the Save button.  Close the source window, but DON'T QUIT POV-RAY YET!  Now switch back to the Finder, select all the files, and drag them onto the POV-Ray application icon, just like before.  This time, all the files will ignore their individual settings, and use the default application setting.
  140. NOTE: In the interest of safety and user sanity, POV-Ray doesn't remember this override state, but always returns to “…each file's settings…” when it is first run.
  141.  
  142. ***
  143. *** To generate a QuickTime movie from POV-Ray…
  144. ***
  145. Use the “clock” variable in expressions in your scene, to scale, translate, or rotate objects.  Then use the “Rendering Options” menu item, turn on the “Animate” checkbox, and click the “Settings” button to set the number of frames and the range of the clock variable.  When you render the file, it will render multiple times and generate a series of PICT files.  You can then use MacroMind Director, Apple's Convert-to-Movie, my FreeWare "MooVer" utility, or some other application to “import” the series of PICT files, and save the result as a QuickTime movie.  
  146.  
  147. To stop the animation rendering in progress, just choose "Stop Rendering" from the Render menu, or press command-period.  The current scene frame will be interrupted, and all upcoming frames will not render.
  148.  
  149. To resume from some frame, you can choose "Animation Settings" from the Rendering Options dialog, and set the "Start At:" to start where you left off.  POV-Ray will then begin rendering from that frame to the "End At:" frame.
  150.  
  151. An example of a spinning box and a moving sphere is shown below:
  152.     box { <-1,-1,-1> <1,1,1> rotate clock*y }
  153.     sphere { <0,0,0> 2 translate clock*z/36-5 }
  154. If you set up the frames to go from 1 to 20, and the clock value to go from 0 to 360, then the above box will make one complete revolution, and the sphere would move from -5 z to +5 z.  The math is left as an exercise to the reader :-)
  155.  
  156. Animation tip:  If you are creating an animation that you want to smoothly loop, there is a subtle problem you might run into.  If you set up the animation to go from 0.0 to 360.0 degrees, you will notice that the first and last frames are the same, since in the 
  157. "polar regions", zero is the same as 360.  This means that at the loop point of the movie, there will be a slight stall because the same frame is displayed twice.  To get around this problem, you must do the following:
  158. Set the Final frame to be one more than you actually want (e.g., 101), and set the "End At:" frame at one less than this (e.g., 100).  Now set the "Start At:" frame number to 1, and set the Initial and Final clock values to the full range (e.g., 0.0 to 360.0)... whew, now you are ready to make a movie!  Of course, you could just delete one of the frames and have a 99 frame movie, but that would be too easy.
  159.  
  160.  
  161. Bugs, Quirks, and Future Directions
  162. -----------------------------------
  163.  
  164. The Bad News...
  165. ************
  166. *  There is a maximum limit of 32,000 characters (approx. 32K bytes) in source files in the built-in text editor window.  The text editor will not allow you to open or create files bigger than this.  This is due to a limitation of the Macintosh TextEdit package (i.e., Programmer Laziness.)  Although the main file to be rendered must be less than 32K in size, any #included (.INC) files may be of any size.  You will just need to use some other editor or word processor to edit those.  If you do use a word processor to edit them, remember to save your files in TEXT-only format.
  167.  
  168. *  There is this same 32K limit in the Status window text.  When the Status Window gets close to this limit, it just drops things off the top as it adds to the bottom.  So you always have the last 32K of text in the window.
  169.  
  170. *  If you create and render a scene file with nothing in it, it will display an error "no objects found in scene."  If you try to run the same scene again, you will get some odd error messages.
  171.  
  172. * After each rendering job, POV-Ray "loses" about 1 KByte of RAM memory.  This sloppy phenomenon, sometimes known in programming circles as a "memory leak", is not harmful.  However, after you've done a large number of renders without quitting the application, you may eventually get an "out of memory" error.  Just quit and restart POV-Ray, and it will be fine for awhile again.  This will be more of a problem if you are doing animation renders with lots of frames.  You may have to break it into multiple runs, or increase POV-Ray's application heap size.  This was addressed prior to release, but not all leaks were found... it will be completely fixed in a future release.  All "direct" memory leaks are fixed, what's left seems to be caused by calling runtime routines that themselves leak.
  173.  
  174. *  POV-Ray should be creating the POV-Ray Virtual Image Buffer file in the Temporary Items folder if it is running under System 7, it currently does not.
  175.  
  176. *  There is still an occasional quirk in the vertical scrollbar of the Status window, where it will get out of sync if you scroll it while the window is being filled.  Nothing is lost, and if you scroll to the top and back to the bottom, all returns to normal.
  177.  
  178. * There are reports that the "Finder Balloon Help" of the POV-Ray Application (turn on Balloon Help and point at app in the Finder) does not work on some Macs.  It will report a Finder "Type -192" error.  It seems to work properly on other machines.  This may be due to a corrupt desktop database, although rebuilding the desktop was reported not to help.
  179.  
  180. *  Under System 6.x, POV-Ray will not automatically open a document that is double clicked from the Finder.  You must run POV-Ray, then open the file from the File menu.  Double-clicking documents DOES work properly in System 7, and in fact, multiple file drag-n-drop is supported.  This missing System 6 feature was an intentional omission due to time constraints and the low priority of the feature.
  181.  
  182. *  If you are using a virtual image buffer for a large image, it is not advisable to use the "Size Image to Window" mode, because the image won't display properly.  This is only a display problem, It will save properly when finished.
  183.  
  184. *  Adobe Photoshop prior to version 2.5 ignores the vertical-flipped bit of the TARGA files created by POV-Ray, and displays them upside down.  Version 2.5 fixes this problem.
  185.  
  186. *  With System 7 Virtual Memory (VM) on, and anti-alias setting on, and an anti-alias on, the VM file will do some thrashing occasionally if your rendering requires a virtual image buffer.  This will just slow things way down; it doesn't cause any crashes.
  187.  
  188. The Good News, Coming sometime after version 2.0...
  189. *****************************************
  190. *  Allow selecting an arbitrary area in Image window, and then re-rendering just that area (x1,y1 to x2,y2).. more flexible than the current start/end scanline method
  191. *  Allow user to scroll the Image window
  192. *  Let user pick file signature for PICT and Targa file formats.  Currently, PICT files are saved with TeachText's signature and Targa files are saved with PhotoShop's (PICT creator type is currently saved in scene file's fPrf resource, & could be edited with ResEdit.)
  193. *  Built-in QuickTime movie support
  194. *  TIFF and PICT image (image-map) support for POV-Ray
  195. *  TrueType font support (extruded characters.. need generic POV-Ray syntax additions for typeface import?)
  196. *  Allow saving image directly to GIF or 8 bit Mac PICT format (currently just 24 bit PICT now.)
  197. *  Mac Network (distributed) rendering
  198.  
  199. The Mac Source Editor needs a _major_ facelift, to include:
  200. *  Abandon stock TextEdit, support source files larger than 32K chars
  201. *  Support tabs
  202. *  Search and replace features should be added
  203. *  Shape prototype generation, esp. torus and other tough ones
  204. *  Add balanced curly brace checking
  205. *  Simultaneously edit multiple source files, useful for Includes
  206.  
  207. One possible way to enhance the editor is to give up on the built-in text editor altogether, and tell the user to use BBEdit or some other text editor, and we could break POV-Ray into a faceless rendering engine that accepts AppleEvents.  The options dialogs could be supported by a stand-alone application that could alter the file's settings prior to rendering.  This makes POV-Ray more loosely coupled, but paves the way for drop-in editors and network rendering.  Besides the time it would take to do this, an interesting obstacle to overcome is how the rendering engine would display its image.  If it was not so tightly integrated, quick changes and re-rendering sessions may be more awkward.  These are some interesting ideas... we are interested in hearing from users as to which way future versions of POV-Ray should head, let us know!
  208.  
  209.  
  210. The Source Code
  211. ---------------
  212. POV-Ray is a team effort, and the team members use Compuserve's Graphics Developers forum (GRAPHDEV) to keep abreast of changes and suggestions.  Before you dive in and write massive enhancements, we suggest that you contact any of the team members and get to know the guidelines.  We are an easy going bunch, and very friendly and interested in helping newcomers.  And who knows, we may be working on the very same features you want to add, or your enhancement may be one we're hoping to see done.  If you wish to make changes to POV-Ray, read the Port Guide, found in the POVSRC archive under MISC:PORTGUID.DOC.
  213.  
  214. Before you publically post altered source or executables, please review the POV-Ray legal documentation for copyright restrictions and rules of distribution.  POVLEGAL.DOC can be found in any of the archives.  To restate our position: please contact us directly with any bug fixes or enhancements.  We can then incorporate them into the next general release.
  215.  
  216. The executables released by the POV Team for the Macintosh are built using Think C 6.0.  It is possible to create even faster POV-Ray executables using a mix of Gnu C and MPW, but for a straight compilation, Think C 6.0 is a little smaller and faster than MPW 3.2 or MPW 3.3.
  217.  
  218. You will find the source code in two sections in the POVSRC archive.  The main portion of POV-Ray is in POVSRC:SOURCE:.  The additional Macintosh-specific source code is in POVSRC:MACHINE:MAC-Source:.  These two sets of source should then be put together into a single POV-Ray Source folder before building (any name is fine.)
  219.  
  220. Some Apple header files for QuickTime compression are also included.  These are mainly for the Think C 5 & 6 environment, as they are already present in MPW 3.3.  If you're trying to build a version and add newer QuickTime features (1.61 is current as of this release), you may need to get newer header files from Apple or Symantec, or whoever is doing Apple's development system these days :-)
  221.  
  222.  
  223. Think C Compiler Notes
  224. ------------------------
  225. When compiling, you must use Think C 5.0 or later (preferably 5.0.4 or 6.0.)  The enclosed Project file "POV.π" is for Think C 6.0.  To compile under Think C 5.x, you will need to throw this file away and create a new one from scratch.  Notes on how to do this are listed below.
  226.  
  227. Think C 5 & 6 don't have the following QuickTime headers, so we have provided them for now.  You will need to copy them into Think C's "Apple Includes" folder.
  228. ImageCodec.h
  229. ImageCompression.h
  230. MediaHandlers.h
  231. Movies.h
  232. MoviesFormat.h
  233. QuickTimeComponents.h
  234.  
  235. You should first make a COPY of your "Standard Libraries:ANSI" library's Project file, and rename your copy to “ANSI-020.FPU.NoConsole”.  This will be the ANSI library you'll be using for POV-Ray.  Remove the files "console.c" and "command.c" from the project.  Choose the Edit:Options menu, and change the following:  Think C:Compiler settings, turn on all checkboxes except "4 byte ints" and "8 byte Doubles".  Code Optimizations:turn on all, but not the Global Optimizations.  Debugging:turn off all.  Prefix:add a #define _NOCONSOLE_.  Choose the menu Project:Set Project Type, and turn on "Separate Strs".  Now "update" to compile all the modules.
  236.  
  237. For Think C 5 users, there are some additional steps, to create the POV.π project file from scratch.  Start up Think C, create a new project called POV.π, and add all the .c source files to the project.  Here's the current segmenting strategy:
  238. === Segment (povNEditor) ===
  239. FileQueue.c
  240. POV.c
  241. POVMalloc.c
  242. ScreenUtils.c
  243. TextEditor.c
  244. === Segment (textures) ===
  245. pigment.c
  246. texture.c
  247. txttest.c
  248. === Segment (tokenize) ===
  249. express.c
  250. matrices.c
  251. tokenize.c
  252. === Segment (macwindows) ===
  253. animate.c
  254. imagewindow.c
  255. popupmenu.c
  256. printf2window.c
  257. progressdialog.c
  258. savecmppict.c
  259. stdcompressionglue.o
  260. templatemenu.c
  261. === Segment (files) ===
  262. dump.c
  263. gif.c
  264. gifdecod.c
  265. iff.c
  266. raw.c
  267. targa.c
  268. === Segment (parse) ===
  269. parse.c
  270. === Segment (render) ===
  271. normal.c
  272. povray.c
  273. ray.c
  274. render.c
  275. vect.c
  276. === Segment (polyquad) ===
  277. poly.c
  278. quadrics.c
  279. === Segment (heightfields) ===
  280. hfield.c
  281. === Segment (cameraNlights) ===
  282. camera.c
  283. lighting.c
  284. === Segment (primparse) ===
  285. boxes.c
  286. colour.c
  287. csg.c
  288. image.c
  289. objects.c
  290. planes.c
  291. point.c
  292. === Segment (primparse2) ===
  293. blob.c
  294. bound.c
  295. cones.c
  296. discs.c
  297. === Segment (primparse3) ===
  298. spheres.c
  299. triangle.c
  300. === Segment (bezier) ===
  301. bezier.c
  302. === Segment (ansi) ===
  303. ANSI-020.FPU.NoConsole
  304. MacTraps
  305. MacTraps2
  306.  
  307. Choose the Edit:Options:Think C: menu, and change the following:  Language:turn on Check Pointer Types and Think C Language Extensions.  Compiler settings, turn on all checkboxes except "4 byte ints" and "8 byte Doubles".  Code Optimizations:turn on all.  Debugging:turn off all.  Prefix:add a #define _NOCONSOLE_.  Choose the menu Project:Set Project Type, and turn on "Separate Strs", set the Creator to "PvRy", set the Size Flags to 58E0, set the type to Application, and set the Partition to 1000.  Insert the following into the Prefix options from the Edit menu:
  308. #define SystemSixOrLater    true
  309. #define _NOCONSOLE_   // turn off Think C console I/O
  310. #include <MacHeaders>
  311. #define NEEDS_68020 1   // turn on to force 68020 or better CPU code
  312. #define NEEDS_COLORQD 1 // turn on to force Color Quickdraw ROM Support
  313. #define NEEDS_32BITQD 1 // turn on to force 32Bit Quickdraw ROM Support
  314. #define NEEDS_FPU 1     // turn on to force 68881 FPU calls
  315. #define USE_NATIVE_MALLOC 1 // turn off to use C's malloc(), on for Mac's NewPtr()
  316.  
  317. After you build the application, you must set the application's (preferred) memory size to 2500, using the Finder's "Get Info" menu item.  This is currently the only way to set the minimum and preferred memory sizes differently.
  318.  
  319.  
  320. MPW C Compiler Notes
  321. ----------------------
  322. The non-FPU version of POV-Ray was compiled under MPW, because the code generated was too big for Think C (specifically, hfield.c.)  An MPW compile of the FPU version of POV-Ray is possible, but generates a noticeably larger and slower application.
  323.  
  324. POV-Ray has been compiled and tested using Apple's MPW C compiler, version 3.2.2 and 3.3.  The make file supposedly supports MPW 3.0 and 3.1 as well, but has not been tested.
  325.  
  326. In order to compile POV-Ray with the included make file, you will first need to manually create an empty folder inside the POV-Ray Source folder called “obj”.  The object files will be stored in there, instead of being sprinkled through the source code folder.
  327.  
  328. MPW 3.2 doesn't have the following QuickTime headers, so we have provided them for now.  You will need to copy them into MPW's Interfaces:CIncludes folder.
  329. ImageCodec.h
  330. ImageCompression.h
  331. MediaHandlers.h
  332. Movies.h
  333. MoviesFormat.h
  334. QuickTimeComponents.h
  335. You will also need to put the file "stdcompressionglue.o" into MPW's :Libraries:Libraries: folder.
  336.  
  337. There are quite a few flags used to turn on and off options (FPU, native-malloc, etc.), these are in the Make file itself.
  338.  
  339. There are some warnings that show up in the POV-Ray core code, all of them are due to unused function parameters.  These are, in the immortal words of Douglas Adams, “Mostly Harmless.”
  340.  
  341.  
  342. PowerPC Compiler Notes
  343. ----------------------
  344. The PowerPC compile is being done by David Harr, and is as preliminary as the PowerPC development system for now.  David Harr can be reached at wirehead@netcom.com.
  345.  
  346.  
  347. [eof]
  348.